const db = wx.cloud.database()
const _ = db.command//暂时无用
import Notify from '../../../vant/notify/notify';
var util = require('../../../utils/util.js')
var app = getApp();
var daojishi;//声明一个倒计时的变量用于控制解答题的倒计时在跳转页面时停止
var tiku;//定义需要查询的数据库题库
var openid
var list=1//题目
var x//随机数
var y//随机数对应的题目对象
var arr=[]//题号集
var collections=[]//题目集
var app = getApp();
var AA=1
var BB
var score=0//单题分数
var scores=0//总分
var totalScore//总积分
var dateTime//当前时间
Page({

  /**
   * 页面的初始数据
   */
  data: {
    results: "",//bmob获取的内容
    list: 1,//题目数目
    yeshu:"",//底部的页数
    inputvalue: "",//用来清空页数input输入框的值
    answer:"",//题目答案判断后的显示内容
    inputtiankong:"",//填空题的输入内容
    disabledT:true,//填空题确认按钮是否可用控制属性
    disabledj: true,//解答题查看答案按钮是否可用控制属性
    disabledtiao: true,//跳转页数按钮是否可使用控制属性
    bgbtn: "",//填空题确认按钮颜色
    bga:"",//选择题A选项的背景色
    bgb: "",//选择题B选项的背景色
    bgc: "",//选择题C选项的背景色
    bgd: "",//选择题D选项的背景色
    bgr: "",//判断题A选项的背景色
    bgw: "",//判断题B选项的背景色
    jiedaxianshi:true,
    key: "查看答案",//查看答案按钮显示内容
    tips: "查看提示",//查看提示按钮显示内容
    totalpagenum:10,//显示在底部的所有题目数量
    disabledN:true,//下一题是否可用
    nextQ:'下一题',
    show:false,//控制成绩遮罩层
    scores:0,//本次总得分
    dateTime:'',//时间
    totalScore:''//总分
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    BB=app.globalData.totalpagenum
    console.log(BB)
    // 调用函数时，传入new Date()参数，返回值是日期和时间
    dateTime = util.dateTime(new Date());
    console.log(dateTime)
    arr=[]//重置数组内容，不然退出再进入数组不为空会导致系统崩溃？
    collections=[]//重置数组内容？
    list=1//重置list同上？
    scores=0//重置scores值，防止退出再进入后上次的得分受影响
    var that=this
    //开始就调用倒计时
    var second = 3;
    this.countDown(second)
    console.log(app.globalData.openid)
    openid=app.globalData.openid
    tiku = app.globalData.shujvku//获取对应题库
    for(var i=0;i<10;i++){
      x = Math.floor(Math.random() * (BB - AA + 1) + AA)//页数
      if(arr.indexOf(x)===-1){//判断是否重复
        arr.push(x)
        //查询题目信息
        db.collection(tiku).where({
          list:x
        }).get().then(res => {
          y=res.data[0]
          collections.push(y)
          console.log(collections)
        })
      }else{
        i=i-1
      }
    }
    console.log(arr)
    setTimeout(function(){
      console.log(collections)
      that.setData({
        results:collections[0],
        dateTime:dateTime
      })
    },3000)
    // db.collection('ddata').where({
    //   _id:openid
    // })
    // .get({
    //   success: function(res) {
    //     console.log(res.data)
    //     if(res.data==""){
    //       db.collection('ddata').doc(openid).set({
    //         data: {
    //           dangshi2021:1,
    //           lastload:'',
    //           lastDate:'',
    //           lastScore:0,
    //           totalScore:0,
    //           tiku1:1,tiku2:1,tiku3:1,tiku4:1,tiku5:1,tiku6:1,tiku7:1,tiku8:1,tiku9:1,tiku10:1//预留位置
    //         }
    //       }).then(res => {
    //         console.log(res)
    //       }).catch(err => {
    //         console.error(err)
    //       })
    //     }

    //   }
    // })
  },
  //倒计时函数,暂时不需要
  countDown: function (num) {
    clearInterval(daojishi)
    this.setData({
      key: num + 's后查看答案',
      tips: num + 's后查看提示'

    });
    if (num < 1) {
      this.setData({
        disabledj: false,
        key: "点击查看答案",
        tips: '查看提示'
      });
      return;
    }
    daojishi=setInterval(() => {
      this.countDown(num - 1)
    }, 1000);
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  //顶部操作相关函数
  //返回首页函数
  fanhuishouye: function(){
    wx.switchTab({
      url: '../index',
    })
  },

  //填空题相关函数
  //1.获取输入内容
  shuru: function (e) {
    var shuru = e.detail.value;
    if (shuru != "") {
      this.setData({
        inputtiankong: shuru,
        disabledT: false,
        bgbtn: "green"
      })
    } else {
      this.setData({
        disabledT: true,
        bgbtn: ""
      })
    }
  },
  //2.判断答案是否正确并显示结果
  btntiankong: function () {
    var answertiankong=this.data.results.rightA
    this.setData({
      disabledN:false
    })
    if (this.data.inputtiankong == answertiankong) {
      score==1
    } else {
      score=0
    };
  },
  //选择题相关函数
  //选择A的函数
  selecta:function(){
    var answerxuanze=this.data.results.rightA
    this.setData({
      disabledN:false
    })
    if (answerxuanze=="A"){
      this.setData({
        bga: "green",
        bgb: "",
        bgc: "",
        bgd: "",
        // answer:"回答正确!"
      })
      score=1
    }else{
      this.setData({
        bga: "green",
        bgb: "",
        bgc: "",
        bgd: "",
        // answer: "回答错误，正确答案是：" + answerxuanze
      })
      score=0
    }
  },
  //选择B的函数
  selectb: function () {
    this.setData({
      disabledN:false
    })
    var answerxuanze = this.data.results.rightA
    if (answerxuanze == "B") {
      this.setData({
        bga: "",
        bgb: "green",
        bgc: "",
        bgd: "",
        // answer: "回答正确!"
      })
      score=1
    } else {
      this.setData({
        bga: "",
        bgb: "green",
        bgc: "",
        bgd: "",
        // answer: "回答错误，正确答案是：" + answerxuanze
      })
      score=0
    }
  },
  //选择C的函数
  selectc: function () {
    this.setData({
      disabledN:false
    })
    var answerxuanze = this.data.results.rightA
    if (answerxuanze == "C") {
      this.setData({
        bga: "",
        bgb: "",
        bgc: "green",
        bgd: "",
        // answer: "回答正确!"
      })
      score=1
    } else {
      this.setData({
        bga: "",
        bgb: "",
        bgc: "green",
        bgd: "",
        // answer: "回答错误，正确答案是：" + answerxuanze
      })
      score=0
    }
  },
  //选择D的函数
  selectd: function () {
    this.setData({
      disabledN:false
    })
    var answerxuanze = this.data.results.rightA
    if (answerxuanze == "D") {
      this.setData({
        bga: "",
        bgb: "",
        bgc: "",
        bgd: "green",
        // answer: "回答正确!"
      })
      score=1
    } else {
      this.setData({
        bga: "",
        bgb: "",
        bgc: "",
        bgd: "green",
        // answer: "回答错误，正确答案是：" + answerxuanze
      })
      score=0
    }
  },
  //判断题的函数
  //选择正确（A）的函数
  selectr: function () {
    this.setData({
      disabledN:false
    })
    var answerpanduan = this.data.results.rightA
    if (answerpanduan == "A") {
      this.setData({
        bgr: "green",
        bgw: "",
        // answer: "回答正确!"
      })
      score=1
    } else {
      this.setData({
        bgr: "green",
        bgw: "",
        // answer: "回答错误，正确答案是：" + answerpanduan
      })
      score=0
    }
  },
  //选择错误（B）的函数
  selectw: function () {
    this.setData({
      disabledN:false
    })
    var answerpanduan = this.data.results.rightA
    if (answerpanduan == "B") {
      this.setData({
        bgr: "",
        bgw: "green",
        // answer: "回答正确"
      })
      score=1
    } else {
      this.setData({
        bgr: "",
        bgw: "green",
        // answer: "回答错误，正确答案是：" + answerpanduan
      })
      score=0
    }
  },
  //解答题相关函数
  chakandaan:function(){
    this.setData({
      jiedaxianshi:false
    })
  },
  //底部操作区相关函数
  //查看提示
  tips:function(){
    this.setData({
      answer:"答案提示："+this.data.results.rightA
    })
  },
    
  //下一题
  nextquestion: function () {
    scores=scores+score
    score=0
    console.log(list)
    console.log(scores)
    if (list+1>10) {
      //交卷并计算得分
      db.collection('ddata').where({
        _id:openid
      }).get().then(res => {
        console.log(res.data)
        if(res.data[0].lastDate==dateTime){
          totalScore=res.data[0].totalScore
          this.setData({
            scores:scores*3,
            totalScore:totalScore,
            show:true
          })
        }else{
          totalScore=res.data[0].totalScore+scores*3
          this.setData({
            scores:scores*3,
            totalScore:totalScore,
            show:true
          })
          db.collection('ddata').doc(openid).update({
            data: {
              totalScore: totalScore,
              lastDate:dateTime,
              lastScore:scores
            },
            success: function(res) {
              console.log(res)
            }
          })
        }
      })
    } else {
      list=list+1
    }
    if(list==10){
      this.setData({
        nextQ:'交卷'
      })
    }
    this.onChange(list)
  },
  //换题后的内容
  onChange: function(list){
    var that=this
    //重置data值
    that.setData({
      results: "",//bmob获取的内容
      list: 1,//题目数目
      yeshu:"",//底部的页数
      inputvalue: "",//用来清空页数input输入框的值
      answer:"",//题目答案判断后的显示内容
      inputtiankong:"",//填空题的输入内容
      disabledT:true,//填空题确认按钮是否可用控制属性
      disabledj: true,//解答题查看答案按钮是否可用控制属性
      disabledtiao: true,//跳转页数按钮是否可使用控制属性
      bgbtn: "",//填空题确认按钮颜色
      bga:"",//选择题A选项的背景色
      bgb: "",//选择题B选项的背景色
      bgc: "",//选择题C选项的背景色
      bgd: "",//选择题D选项的背景色
      bgr: "",//判断题A选项的背景色
      bgw: "",//判断题B选项的背景色
      jiedaxianshi:true,
      key: "查看答案",//查看答案按钮显示内容
      disabledN:true
    })
    //查询题目信息
    that.setData({
      results:collections[list-1],
      list:list
    })
    //开始就调用倒计时
    var second = 3;
    that.countDown(second)
  },
})